The present invention relates to encoding frame data, and more particularly, to a method and apparatus for packing (entropy encoding) a tile of a frame through loading encoding-related information (e.g., partition size information) of another tile above the tile from a storage device.
The conventional video coding standards generally adopt a block based coding technique to exploit spatial redundancy. For example, the basic approach is to divide the whole source frame into a plurality of blocks, perform prediction on each block, transform residues of each block, and perform quantization and entropy encoding. Besides, a reconstructed frame is generated in a coding loop to provide reference pixel data used for coding following blocks. For certain video coding standards, in-loop filter(s) may be used for enhancing the image quality of the reconstructed frame.
VP9 is an open and royalty-free video coding standard being developed by Google®. VP9 provides tiles for parallel processing, which is similar to that proposed in HEVC (High Efficiency Video Coding). However, in accordance with the VP9 coding standard, there are some dependencies among tiles vertically adjacent in a frame to be encoded. As a result, packing (i.e., entropy encoding) of these vertically-adjacent tiles in the same tile column cannot be done in parallel. Thus, there is a need for an innovative encoder design which is capable of packing (entropy encoding) vertically adjacent tiles of a frame in a parallel manner to thereby achieve enhanced encoding performance.